/**
 * <strong>Title : FailureCauseDao.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.em.dao<br>
 * </strong> <strong>Description : </strong>@类注释说明写在此处@<br>
 * <strong>Create on : 2015年11月4日 下午2:33:38<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.em.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.em.model.FailureCause;
import cn.b.sky.mes.em.model.condition.FailureCauseCondition;

/**
 * <strong>Title : FailureCauseDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.em.dao<br></strong>
 * <strong>Description : </strong>故障原因持久层<br> 
 * <strong>Create on : 2015年11月4日 下午2:33:38<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface FailureCauseDao {

  /**
   * <strong>Title : selectFailureCauseListByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件获得故障原因列表<br> 
   * <strong>Create on : 2015年11月4日 下午2:35:46<br></strong>
   * <p>
   * @param condition
   * @return
   * List<FailureCause>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<FailureCause> selectFailureCauseListByCondition(FailureCauseCondition condition);

  /**
   * <strong>Title : deleteFailureCause<br></strong>
   * <strong>Description : </strong>删除故障原因实体<br> 
   * <strong>Create on : 2015年11月4日 下午2:44:26<br></strong>
   * <p>
   * @param failureCauseCode
   * @param siteCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteFailureCause(@Param("failureCauseCode") String failureCauseCode, @Param("siteCode") String siteCode);

  /**
   * <strong>Title : saveFailureCause<br></strong>
   * <strong>Description : </strong>新增故障原因<br> 
   * <strong>Create on : 2015年11月4日 下午2:44:32<br></strong>
   * <p>
   * @param failureCause
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void saveFailureCause(FailureCause failureCause);

  /**
   * <strong>Title : updateFailureCause<br></strong>
   * <strong>Description : </strong>更新故障原因<br> 
   * <strong>Create on : 2015年11月4日 下午2:44:39<br></strong>
   * <p>
   * @param failureCause
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateFailureCause(FailureCause failureCause);

  /**
   * <strong>Title : selectFailureCauseCount<br></strong>
   * <strong>Description : </strong>获得故障原因总数<br> 
   * <strong>Create on : 2015年11月4日 下午2:44:47<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectFailureCauseCount(FailureCauseCondition condition);

  /**
   * <strong>Title : getFailureCause<br></strong>
   * <strong>Description : </strong>根据causecode获得故障原因实体<br> 
   * <strong>Create on : 2015年11月4日 下午2:57:02<br></strong>
   * <p>
   * @param causeCode
   * @param siteCode
   * @return
   * FailureCause
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  FailureCause getFailureCause(@Param("failureCauseCode") String causeCode, @Param("siteCode") String siteCode);

}
